Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[csharp] Use the provided 'sourceFolder' property to generate the test folder #10738

Merged

Conversation

Starkie
Copy link
Contributor

@Starkie Starkie commented Oct 31, 2021

Hi all!

This issue is regarding the csharp-netcore generator. There is a bit of an inconsistency in how the test folders are generated when the sourceFolder property is provided. For example:

  • Set the option sourceFolder to anything other than src.
    • In this case, I left it empty: --additional-properties=sourceFolder=""
  • Generate the client
  • See that the client was generated in the provided sourceFolder... but the tests where generated in src:
    image

In the AbstractCSharpCodegen.java, there is a TODO a few years old saying that a separate option for testFolder could be added:

// TODO: Add option for test folder output location. Nice to allow e.g. ./test instead of ./src.
// This would require updating relative paths (e.g. path to main project file in test project file)
protected String testFolder = sourceFolder;

Until that is implemented, I created a little workaround, assigning the provided sourceFolder parameter to the testFolder.

With this change, the projects are generated as expected:
image

Related issue: #1390

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package 
    ./bin/generate-samples.sh
    ./bin/utils/export_docs_generators.sh
    
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master (5.3.0), 6.0.x
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

* Use the specified 'sourceFolder' from additional properties for the 'testFolder' property.
@Starkie
Copy link
Contributor Author

Starkie commented Oct 31, 2021

I executed the given commands and there were no changes.

./mvnw clean package 
./bin/generate-samples.sh
./bin/utils/export_docs_generators.sh

@Starkie Starkie changed the title [csharp] Fix generation inconsistency of test folder [csharp] Use the provided 'sourceFolder' property to generate the test folder Oct 31, 2021
@Blackclaws
Copy link
Contributor

While I'll say that this doesn't really affect much and could be merged as is, I'd still also vote for just "doing it right" in the first place. Ergo implementing a testFolder additionalProperty and using that to set the location.

@wing328 wing328 changed the base branch from 6.0.x to master November 3, 2021 08:47
@wing328 wing328 changed the base branch from master to 6.0.x November 3, 2021 08:47
@wing328
Copy link
Member

wing328 commented Nov 9, 2021

Let's go with this and later consider the testFolder option/additional-properties when there's a demand for it.

@wing328 wing328 added this to the 5.3.1 milestone Nov 9, 2021
@wing328 wing328 merged commit a77a90f into OpenAPITools:6.0.x Nov 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants